#include <set>
#include <vector>
#include <iostream>

using namespace std; 

/*
str1 = "X K Y K Z P W"
str2 = "Z X V V Y Z W"
字符相同，在各自的字符串里出现顺序相同最长的字符序列，LCS - Longest Common Sequence(序列)
X Y Z W

X	K	Y	K	Z	P
Z


Z X
X	K	Y	K	Z P

X	K	Y
Z X V V Y


找到两个字符串里，相同的字符序列
ABC
AC

AEF
AFD

CDE
EFC
*/
vector<char> commonChars(const string &str1, const string &str2) {
  set<char> result;
  vector<bool> line(str1.size(), false);
  vector<vector<bool>> table(str2.size(), line);

  for (int row = 0; row < str2.size(); ++row) {
    for (int col = 0; col < str1.size(); ++col) {
      if (str2[row] == str1[col]) {
        table[row][col] = true;
      }
    }
  }

  // table 里记录了所有相同字符的位置
  // 遍历这个 table，找到所有位置为 TRUE 的格子上的字符
  for (int row = 0; row < str2.size(); ++row) {
    for (int col = 0; col < str1.size(); ++col) {
      if (table[row][col]) {
        result.insert(str2[row]);
      }
    }
  }

  return vector<char>(result.begin(), result.end());
}



int main(int argc, char const *argv[])
{
  /* code */
  return 0;
}
